Apparatus and method for reading and writing text characters in a graphics display

ABSTRACT

Apparatus and method for writing text characters to a raster scan video display operted in an all-points-addressable, or graphics, mode, and for reading characters thus written. A graphic video display buffer directly refreshes the display with graphics data received from a microprogrammed processor. The processor writes a character to the display by selecting and loading into the graphics video display buffer a text character dot pattern retrieved from main storage, and reads a character previously written by comparing a dot pattern retrieved from the display buffer with dot patterns retrieved from main storage. To write a character to the display in color, the graphic dot image of a selected character retrieved from main storage is expanded to a selected pixel and color format, and stored in the graphics video display buffer. Text characters thus written in color are read by retrieving from the display buffer the expanded dot image, restoring the expanded dot image to its original form, and comparing the restored dot image with graphic dot images retrieved from storage.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to display systems and, more particularly, to asystem for reading and writing text characters in a color graphicsraster scan, all points addressable video display.

2. Discussion of the Prior Art

A video display typically provides an interface between a dataprocessing machine and a user. Generally, a video image may compriseeither strings of characters or of graphics, each of which requiresdifferent storage and, heretofore, processing requirements. Because ofthese differing requirements, many prior art video display systems donot permit the combining of text and graphic data on the same screen.However, many applications of graphic displays would be greatly enhancedby the provision of character data, such as legends on charts or graphs.

U.S. Pat. No. 4,149,145 describes a video display permitting theplacement of character data within the region of display of graphicinformation. This is done by combining both graphic and character datain a video register. Each of the graphic and character data areseparately developed, with a character generator providing the characterimage components and a graphic generator providing the graphic imagecomponents. These two components are merged or superimposed to provide acomposite video signal. However, in the system of U.S. Pat. No.4,149,145, there is no provision for reading text characters from thecomposite signal, and unnecessary complexity is required by the use ofseparate text character and graphics generators.

SUMMARY OF THE INVENTION

The invention provides apparatus and method for writing text charactersto a raster scan video display operated in the graphics mode, and forreading characters thus written.

The apparatus of the invention includes a graphic video display bufferoperable in an all points addressable mode for refreshing the displaywith graphics data, and a processor for loading the graphic data intosaid graphics video display buffer. The improvement comprisesprogrammable control means referenced by said processor for writing byselecting and loading into said graphics video display buffer a textcharacter dot pattern from main storage, and for reading by comparingdot patterns read from said display buffer with dot patterns in saidmain storage.

According to the method of the invention, text characters are written toa raster scan, all points addressable video display by retrieving fromstorage the graphic dot image of a selected character, expanding thegraphic dot image to a selected pixel and color format, and storing theexpanded dot image in a graphics video display buffer. Text charactersare read by retrieving from the display buffer expanded dot images,restoring the expanded dot image to its original form, and comparing therestored dot image with graphic dot images selected from storage.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a logic schematic illustrating the video display controlapparatus of the invention.

FIG. 2 is a schematic illustration of the relationships between pixeldisplay and storage locations.

FIG. 3 is a schematic illustration of a segmented display screen for usein describing the scrolling features of the invention.

FIGS. 4-6 are logic flow diagrams of the graphics write steps of themethod of the invention.

FIGS. 7-9 are logic flow diagrams of the graphics read steps of theinvention.

FIGS. 10-11 are logic flow diagrams of the graphics scroll up steps ofthe invention.

FIGS. 12-13 are logic flow diagrams of the graphics scroll down steps ofthe invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring now to FIG. 1, a description will be given of the apparatus ofthe invention for reading and writing text characters in a colorgraphics display.

The display of the invention is particularly suited for use inconnection with a microcomputer including microprocessor 20, dynamicstorage 25, read only storage 27, display 50, and keyboard 60. In thisembodiment, microprocessor 20 may comprise an Intel 8088 CPU, whichutilizes the same 16-bit internal architecture as the Intel 8086 CPU buthas an external 8-bit data bus 22. For a description of the Intel 8086,and consequently of the 8086 instruction set used in the microprogramassembly language descriptions of the invention set forth hereafter,reference is made to Stephan P. Morse, The 8086 Primer, Hayden BookCompany Inc., Rochelle Park, N.J., copyright 1980, Library of Congressclassification QA76.8.1292M67 001.6'4'04 79-23932 ISBN 0-8104-5165-4,the teachings of which are herein incorporated by reference.

Processor 20 communicates with devices external to its integratedcircuit chip via status and control line 21, data bus 22, and addressbus 23. Such external devices include dynamic storage 25 (for example,Texas Instruments 4116 RAM) with refresh control 24 (for example, anIntel 8237 DMA driven by an Intel 8253 Timer); and, connected bydrivers/receivers 26 (for example, a TTL standard part 74LS245), readonly storage 27 (for example, a MOSTEK 36000), direct storage access (orDMA) chip 28 (for example, and Intel 8237 DMA), timer 29 (for example,an Intel 8253 Timer implemented as described in "Refresh Circuit forDynamic Memory of Data Processor Employing a Direct Memory AccessController," by James A. Brewer, et al, U.S. patent application Ser. No.292,075, filed Aug. 12, 1981) and keyboard attachment 66 with keyboard67.

Input/Output slots 30 provide for the attachment of a further pluralityof external devices, one of which, the color graphic display attachment31 is illustrated. Color graphics display adapter 31 attaches one ormore of a wide variety of TV frequency monitor 50, 51 and TV sets 52,with an RF modulator 49 required for attaching a TV via antenna 53.Adapter 31 is capable of operating in black and white or color, andherein provides these video interfaces: a composite video port on line48, which may be directly attached to display monitor 51 or to RFmodulator 49, and a direct drive port comprising lines 39 and 46.

Herein, display buffer 34 (such as an Intel 2118 RAM) resides in theaddress space of controller 20 starting at address X`B8000`. It providesin 16K bytes of dynamic RAM storage a raster scan bit map. A dual-portedimplementation allows CPU 20 and graphics control unit 37 to accessbuffer 34.

An APA mode, two resolution modes will be described: APA color 320×200(320 pixels per row, 200 rows per screen) mode and APA black and white640×200 mode. In 320×200 mode, each pixel may have one of four colors.The background color (color 00) may be any of the sixteen possiblecolors. The remaining three colors come from one of two palettes inpalette 42 selected by microprocessor 20 under control of read onlystorage 27 program: one palette containing red (color 01), green (color10), and yellow (color 11), and the other palette containing cyan (color01), magenta (color 10), and white (color 11). The 640×200 mode is, inthe embodiment described, available only in two colors, such as blackand white, since the full 16KB of storage in display buffer 34 is usedto define the pixels on or off state.

In A/N mode, characters are formed from ROS character generator 43,which herein may contain dot patterns for 254 characters. These areserialized by alpha serializer 44 into color encoder 41 for output toport lines 46 or via lines 48 to composite color generator 48 for outputto composite video line 48.

Display adapter 31 includes a CRT control module 37, which provides thenecessary interface to processor 20 to drive a raster scan CRT 50-52.Herein, CRT control module 37 comprises a Motorola MC6845 CRT controller(CRTC) which provides video timing on horizontal/vertical line 39 andrefresh display buffer addressing on lines 38. The Motorola MC6845 CRTCis described in MC6845 MOS (N-channel, Silicon-Gate) CRT controller,Motorola Simiconductor's publication ADI-465, copyright Motorola, Inc.,1977.

As shown in FIG. 1, the primary function of CRTC 37 is to generaterefresh addresses (MA0-MA13) on line 38, row selects (RAO-RA4) on line54, video monitor timing (HSYNC, VSYNC) on line 39, and display enable(not shown). Other functions include an internal cursor register whichgenerates a cursor output (not shown) when its content compares to thecurrent refresh address 38. A light-pen strobe input signal (not shown)allows capture of refresh address in an internal light pen register.

All timing in CRTC 37 is derived from a clock input (not shown).Processor 20 communicates with CRTC 37 through buffered 8-bit data bus32 by reading/writing into an 18-register file of CRTC 37.

The refresh memory 34 address is multiplexed between processor 20 andCRTC 37. Data appears on a secondary bus 32 which is buffered from theprocessor primary bus 22. A number of approaches are possible forsolving contentions for display buffer 34:

(1) Processor 20 always gets priority.

(2) Processor 20 gets priority access any time, but can be synchronizedby an interrupt to perform accesses only during horizontal and verticalretrace times.

(3) Synchronize process by memory wait cycles.

(4) Synchronize processor 20 to character rate.

The secondary data bus concept in no way precludes using the displaybuffer 34 for other purposes. It looks like any other RAM to processor20. For example, using approach 4, a 64K RAM buffer 34 could performrefresh and program storage functions transparently.

CRTC 37 interfaces to processor 20 on bidirectional data bus 32 (DO-D7)using Intel 8088 CS, RS, E, and R/W control lines 21 for controlsignals.

The bidirectional data lines 32 (DO-D7) allow data transfers between theCRTC 37 internal register file and processor 20.

The enable (E) signal on lines 21 is a high impedance TTL/MOS compatibleinput which enables the data bus input/output buffers and clocks data toand from CRTC 37. This signal is usually derived from the processor 20clock.

The chip select (CS) line 21 is a high impedance TTL/MOS compatibleinput which selects CRTC 37 when low to read or write the CRTC 37internal register file. This signal should only be active when there isa valid stable address being decoded on bus 33 from processor 20.

The register select (RS) line 21 is a high impedance TTL/MOS compatibleinput which selects either the address register (RS=`0`) or one of thedata registers (RS=`1`) of the internal register file of CRTC 37.

The read/write (R/W) line is a high impedance TTL/MOS compatible inputwhich determines whether the internal register file in CRTC 37 getswritten or read. A write is active low (`0`).

CRTC 37 provides horizontal sync (HS/vertical sync (VS) signals on lines39, and display enable signals.

Vertical sync is a TTL compatible output providing an active high signalwhich drives monitor 50 directly or is fed to video processing logic 45for composite generation. This signal determines the vertical positionof the displayed text.

Horizontal sync is a TTL compatible output providing an active highsignal which drives monitor 50 directly or is fed to video processinglogic 45 for composite generation. This signal determines the horizontalposition of the displayed text.

Display enable is a TTL compatible output providing an active highsignal which indicates CRTC 37 is providing addressing in the activedisplay area of buffer 34.

CRTC 37 provides memory address 38 (MA0-MA13) to scan display buffer 34.Also provided are raster addresses (RA0-RA4) for the character ROM.

Refresh memory 34 address (MA0-MA13) provides 14 outputs used to refreshthe CRT screen 50-52 with pages of data located within a 16K block ofrefresh memory 34.

Raster addresses 54 (RA0-RA4) provides 5 outputs from the internalraster counter to address the character ROM 43 for the row of acharacter.

Palette/overscan 42 and mode select 47 are implemented as a generalpurpose programmable I/O register. Its function in attachment 31 is toprovide mode selection and color selection in the medium resolutioncolor graphics mode.

Time control 47 further generates the timing signals used by CRTcontroller 37 and by dynamic RAM 34. It also resolves the CPU 20 graphiccontroller 37 contentions for accessing display buffer 34.

An A/N mode, attachment 31 utilizes ROS (for example, a MOSTEK 36000ROS) character generator 43, which consists of 8K bytes of storage whichcannot be read/written under software control. The output of charactergenerator is fed to alpha serializer 44 (such as a standard 74 LS 166shift register), and thence to color encoder 41. As elements 43, 44 areincluded only for completeness, they are not utilized in the inventionand will not be further described.

The output of display buffer 34 is alternatively fed for every otherdisplay row in a ping pong manner through data latches 35, 36 tographics serializer 40, and thence to color encoder 41. Data latches 35,36 may be implemented as standard TTL 74 LS 244 latches, graphicsserializer 40 as a standard TTL 74 LS 166 shift register. Color encoder41 may be implemented in logic such as is described in M. A. Dean, etal, "Composite Video Color Signal Generator From Digital Color Signals",assignees Ser. No. 292,074, 8-1981, of common assignee as the presentinvention. Composite color generator 45 provides logic for generatingcomposite video 48, which is base band video color information.

The organization of display buffer 34 to support the 200×320 colorgraphics mode is illustrated in FIG. 2 for generating, by way ofexample, a capital A in the upper left-hand position 50a of monitor 50.Read only storage 27 stores for each character displayable in graphicsmode an eight byte code, shown at 27a as sixteen hexidecimal digits3078CCCCFCCCCCOO. In FIG. 2, these are organized in pairs, each pairdescribing one row of an 8×8 matrix on display 50a. In display 50a, an"X" in a pixel location denotes display of the foreground color (herein,code 11) and a "." denotes display of the background color (code 00).

When the character "A" is to be displayed, the sixteen digit hex codefrom read only storage 27 (or, equivalently, from dynamic storage 25)is, in effect converted to binary. Thus, the first 8 pixel row, 30 hex,becomes 00110000, in binary. This eight bit binary code is then expandedto specify color, with each "0" becoming "00" to represent thebackground color, and each "1" becoming 10, 01, or 11 to specify one ofthe three foreground colors from the selected palette. In FIG. 2, each"1" in the binary representation of the character code from storage 27becomes "11" (which for palette two represents yellow; see below). Thus,the hex 30 representation of the first 8-pixel row of character "A", isexpanded to 00 00 11 11 00 00 00 00 in display buffer 34a, shown atlocation `0` (in hexidecimal notation, denoted as x `0`). Graphicsstorage 34 is organized in two banks of 8000 bytes each, as illustratedin Table 1, where address x `0000` contains the pixel information(301-304) for the upper left corner of the display area, and address x`2000` contains the pixel information for the first four pixels(311-314) of thesecond row of the display (in this case, the first 8 bitbyte of the two byte binary expansion 00 11 11 11 11 00 00 00 of hex78).

                  TABLE 1                                                         ______________________________________                                        DISPLAY BUFFER 34 ADDRESSING                                                  ______________________________________                                         ##STR1##                                                                     ______________________________________                                    

For the 200×640 mode (black and white), addressing and mapping ofdisplay buffer 34 to display 50 is the same as for 200×320 colorgraphics, but the data format is different: each bit in buffer 34 ismapped to a pixel on screen 50 (with a binary 1 indicating, say, black;and binary 0, white).

Color encoder 41 output lines 46I (intensity), R (red), G (green), B(blue), provide the available colors set forth in Table 2:

                  TABLE 2                                                         ______________________________________                                        COLOR ENCODER OUTPUT 46                                                       I      R         G     B        COLOR                                         ______________________________________                                        0      0         0     0        Black                                         0      0         0     1        Blue                                          0      0         1     0        Green                                         0      0         1     1        Cyan                                          0      1         0     0        Red                                           0      1         0     1        Magenta                                       0      1         1     0        Brown                                         0      1         1     1        Light Gray                                    1      0         0     0        Dark Gray                                     1      0         0     1        Light Blue                                    1      0         1     0        Light Green                                   1      0         1     1        Light Cyan                                    1      1         0     0        Light Red                                     1      1         0     1        Light Magenta                                 1      1         1     0        Yellow                                        1      1         1     1        White                                         ______________________________________                                    

Referring now to FIGS. 4-9, in connection with the Intel 8086 assemblylanguage (ASM-86) listings embedded in microcode in read only storage27, executed in microprocessor 20 to control the operation of videoattachment 31, and set forth in Tables 3 through 12, a description willbe given of the method of the invention for writing text characters to avideo screen operating in APA, or graphics mode. The Intel 8086architecture and ASM-86 language is explained in Morse, The 8088 Primer,supra.

In Table 3 is set forth the preamble and various initializationprocedures to the Graphics Read/Write Character microprogram in ROS 27.While the control program, in this embodiment, is shown stored in a readonly store 27, it is apparent that such could be stored in a dynamicstorage, such as storage 25.

In step 400, a data location in RAM 25 is tested to determine if thesystem is graphics write mode. If not, and a character is to be written,a branch to normal A/N character mode 402 is taken and the method of theinvention bypassed.

Table 4 sets forth the 8086 assembly language listing for the graphicswrite steps, Table 5 the high resolution (black and white, or 640×200)mode thereof, and Table 6 the medium resolution (color, or 320×200)mode.

In step 404, lines 53-57 of Table 4, addressability to the displaybuffer is established: the location in display buffer (REGEN) 34 toreceive the write character is determined and loaded into register DI ofprocessor 20. In step 406, lines 58-83, addressability to the stored dotimage is established: the location in read only storage (ROM) 27 ordynamic storage (USER RAM) 25 of the dot image of the character to bedisplayed is determined. After execution of Table 4, line 92, processor20 registors DS, SI are pointing at the location in ROM 27 or RAM 25where the character dot image is stored, and DS, SI defineaddressability of the dot image. At step 408, line 93 the test is madefor high resolution (640×200) or medium resolution (320×200) mode, (JCmeans jump on carry, and is an old Intel 8080 operation code which isthe same as JB/JNAE in ASM-86, which works, amazingly enough, eventhough JC is not a documented operation code in ASM-86.) In highresolution mode, control passes to step 410, line 95 (Table 5). Formedium resolution mode, it passes to step 438, line 124 (Table 6).

For high resolution mode (640×200, black and white), the procedure ofsteps 412-424 (426-430 included, if pertinent) is performed for each ofthe four bytes required to provide the dot image for a character ingraphics mode. Step 410 (line 99) sets the loop counter register DH tofour, and in steps 412 (step 101) a dot image byte from ROM 27 or RAM 25pointed to by processor 20 registers DS, SI is loaded into the processor20 string. The LODSB and STOSB instructions at lines 101, 120 and 104,119, etc. perform the following actions:

    LODSB: MOV AL, [DS:SI]; SI←SI+1

    STOSB: MOV [ES.DI], AL; DI←DI+1

At step 414 (line 102) a test is made to determine whether or not theapplication requesting the display of the character wants the characterto replace the current display, or to be exclusive OR'd with the currentdisplay. In steps 416-422, (lines 104-115) the current display isreplaced by storing this and the next dot image bytes in display buffer34, with the next byte offset or displaced by X`2000` from the locationof this byte in buffer 34. In steps 426-430 (lines 117-122), thealternative operation of exclusive ORing those two bytes into displaybuffer 34 is performed. If more than one identical character is to bewritten to display screen 50 in this operation, steps 432-434 of FIG. 5(lines 112-114) condition the procedure for executing steps 410 through434 for each such character.

Table 6 sets forth the 8086 assembly language listing in ROM 27 executedby processor 20 to control display attachment 31 to display a textcharacter in the medium resolution (320×200) mode, and corresponds tosteps 438 (FIG. 4) to 460 (FIG. 6).

In steps 438 (lines 128, Table 6, and Table 8) the input color (twobits, 01, 10 or 11) is expanded to fill a 16-bit word by repeating thetwo bit code. In step 440 (line 134), a byte of character code pointsare loaded into the AL register of processor 20 from storage 25, 27. Instep 442, (line 135) each bit in the 1 byte AL register (character codepoints) is doubled up by calling EXPAND BYTE, Table 9; and the result isAND'd to the expanded input color (at line 136).

In step 444 (lines 142-143) the resulting word (2 bytes) of step 442 isstored in display buffer 34. This is shown, by way of example, atlocation X`O` in FIG. 2, the stored word comprising fields 301-308. (InFIG. 4, the XOR procedures of Table 6, lines 137-140 and 147-150 are notshown, but are analygous to the XOR procedure of steps 414-430 for thehigh resolution mode.)

In step 446 (line 144) the next dot image byte is retrieved from storage25, 27, and at step 448 it is expanded (line 145) and AND'd with color(line 146). In step 450 (lines 152-153) the resulting word is stored indisplay buffer 34, offset from the word stored at step 444 by x `2000`.

At step 452 (line 154) the display buffer pointer is advanced to thenext row of the character to be displayed, and processing returns (step454, line 156) to complete the character or proceeds (step 456, 458,460, lines 156-160) to repeat the completed character as many times asrequired.

Referring now to logic flow diagrams 7-9 in connection with the 8086assembly language listings of Tables 10-12, an explanation will be givenof the graphic read steps of the invention. In this process, a selectedcharacter dot image from display buffer 34 is compared against dot imagecode points retrieved from storage 25, 27, a match indicating that thecharacter in buffer 34 has been identified, or read.

In step 462 it is first determined if video attachment 31 is beingoperated in the graphics mode. If not, in step 464 the read operation isperformed in character mode, and the method of the invention is notinvolved.

In step 466 (line 171) the location in display buffer 34 to be read isdetermined by calling procedure POSITION, as set forth in Table 7. Instep 468 (line 173) an 8-byte save area is established on a stack withinthe address space of processor 20.

In step 470 (lines 176-181) the read mode is determined. Control passesto step 482 (Table 11) for medium resolution (color, or 320×200) mode.For high resolution (black/white, or 640×200 mode, at step 472, line187) the loop count is set to 4 (there being 4 two-byte words percharacter), and in steps 474-480 (lines 189-197) eight bytes areretrieved from display buffer 34 and put into the save area reserved onthe stack in step 468. For medium resolution mode, at step 482 (line203), the loop count is set equal to 4, and in steps 484-490 (lines204-210) the character to be read is retrieved from display buffer 34.The procedure MED READ BYTE called at lines 205, 207 is set forth inTable 12 in connection with FIG. 9.

Referring to FIG. 8, at step 492 (Table 11, line 214) processingcontinues to compare the character, either high or medium resolutionmode, read from display buffer 34 with character code points read fromstorage 25, 27. In step 492 (line 214) the pointer to the dot imagetable in ROM 27 is established. (The processing of lines 238-250 isexecuted if the character is not found in ROM 27 and the search must beextended into dynamic storage 25 where the user supplied second half ofthe graphic character points table is stored.)

In step 494 (lines 220-224) the character value is initialized to zero(it will be set equal to 1 when a match is found), and the loop countset equal to 256 (line 224 sets DX=128, and this is again, at line 249,reestablished for a total of 256 passes through the loop of steps496-602, if required).

In step 496 (line 229), the character read from display buffer 34 intothe save area is compared with the dot image read from storage 25, 27,and the match tested at step 498 (line 232). Loop control steps 600, 602(lines 233-236) are executed until a match is found, or until all 256dot images in storage 25, 27 have been compared with a match. In step604 (line 255) the save area is released, and in step 606 (line 256) theprocedure ends. If a character match has occurred in step 498, thecharacter thus read is located in storage 25, 27 at the location pointedto by register AL. AL=0 if the character was not found (a not unexpectedresult if a character had been exclusively OR'd into the display buffer24 at the location being read, such as at steps 426-450).

Referring now to FIG. 9 in connection with Table 12, the procedure MEDREAD BYTE, called at steps 484 and 486, will be described. Thisprocedure compresses 16 bits previously expanded from eight to encodethe color (see step 442) and stored in display buffer 34 (at step 444)back to the original dot image (obtained previously from storage 25, 27at step 440). Step 608 (lines 330-331) gets two eight-bit bytes, whichin step 610 (lines 332-343) is compressed two bits at a time to recoverthe original dot image. In step 612 (lines 344-346) the results aresaved in the area pointed to by register BP.

Referring now to FIG. 3, in connection with FIGS. 10-13 and Table 13, adescription will be given of the graphic scrolling facility provided forseparate discrete areas 60, 63, 65 of display screen 506. This inventionis described and claimed in U.S. patent application Ser. No. 6/292,081,filed Aug. 12, 1981 for "Apparatus and Method for Scrolling TextCharacters and Graphic Data in Selected Portions of a Graphic Display",by David J. Bradley. In accordance with this invention, a user maydefine a plurality of windows on the screen in which graphic informationblocks may be scrolled. The designation of a scroll section or window 60requires address of opposite corners, such as the address of the upperleft corner 61 and the lower right corner 62, and the number of lines toscroll. The difference in corner addresses sets the window. The color ofthe newly blanked line is established by a blanking attribute. Withinthese parameters, the graphic scrolling procedure of FIGS. 10-13 isperformed. By this approach, both text (graphic) and display may bescrolled within separate windows 60, 63, and 65.

In Table 13, certain 8086 assembly language parameters are initialized.(Reference to graphics R/W dot does not pertain to the presentinvention.)

In Tables 14 and 15, the scroll up assembly language statementscorresponding to FIGS. 10 and 11 are set forth. (The line numbers ofTables 13-19 overlap those of previous tables, but the step numbers ofthe figures do not.)

In step 614 (line 161) the pointer to the display buffer 34 locationcorresponding to upper left corner 61 of the display window 60 to bescrolled is placed in processor 20 register AX. In step 616 (lines169-174) is determined the number of rows and columns in window 60. Instep 618 (lines 178-179) the mode is determined, and if 320×200 mode isdetected, in step 620 (lines 182-183) the number of columns in thewindow is adjusted to handle two bytes per character.

In step 622 (lines 185-200 of Table 15), the source pointer isestablished equal to upper left (UL) pointer plus the number of rows(from register AL) to scroll, the result placed in register S1.

In steps 624, 626 (line 203) a call is made to procedure ROW MOVE (Table18) to move a row from source (pointed to by SI) to destination (pointedto by DI). Line 314 performs the move of step 624, line 322 of step 626,and lines 317-318 adjust the pointers (note line 17, Table 13--ODD FLDis equal to X`2000`).

In step 628 (lines 204-205), the source (SI) and destination (DI)pointers are advanced to the next row of the screen window. In step 630(lines 206-207) the row count is decremented and, if the process is notcomplete, the procedure of steps 624-630 repeated.

In step 632 (FIG. 11; line 213) procedure ROW CLEAR (Table 19) is calledto clear a row by filling it with the fill value for blanked linesspecified in processor 20 register BH and transferred to the AL registerat line 211. The REP STOSB instruction at lines 333, 338 stores the bytecontained in AL into the byte whose offset is contained in DI,increments DI, and repeats to fill every byte of the row with theblanking attribute (which may be the screen background color, forexample.)

In step 634 (line 214) destination pointer DI is advanced to the nextrow, and in step 636 (lines 215, 216) the number BL of rows to scroll isdecremented, and the loop of steps 632-636 executed for each row to bescrolled.

The procedure for scroll down is set forth in FIGS. 12 and 13, inconnection with the 8086 assembly language source code instructions ofTables 16-19. The procedure is analogous to that for scroll up, whereverstep 638 corresponds to lines 239-242, step 640 to lines 250-256, step642 to lines 257-261, step 644 to lines 263-265, step 646 to lines267-283, steps 648 and 650 to line 286, step 652 to lines 287-288, step654 to lines 289-290, step 656 to line 296, step 658 to line 297, step660 to lines 298, 299 and step 662 to line 301.

The assembly language code listings of Tables 3 through 19 areCopyrighted by IBM Corporation, 1981, and are reproduced herein byconsent of IBM. ##SPC1##

While the invention has been described with respect to preferredembodiments thereof, it is to be understood that the foregoing and othermodifications and variations may be made without departing from thescope and spirit thereof.

I claim: .[.1. A raster scan video display control apparatus of the typeincluding a graphic video display refresh buffer operable in an allpoints addressable mode for refreshing said display with graphics data,a processor for writing graphic data into said display refresh buffer,and a character storage for storing the character dot patterns of adisplay character font, characterized by: . A method for writing a textcharacter on a raster scan all points addressable video display,comprising the steps of:retrieving from storage the graphic dot image ofthe character to be written; expanding said graphic image to a selectedpixel and color format; and storing the expanded dot image in a displayrefresh buffer.
 4. A method for reading a selected text characterpreviously written as an expanded dot image into a display refreshbuffer from a graphic dot image stored in a storage associated with anall points addressable video display, comprising the steps of:retrievingfrom said display refresh buffer the expanded dot image of the selectedcharacter to be read; converting the expanded dot image to be read to aconverted dot image corresponding to the format of graphic dot image inthe storage; obtaining from storage the graphic dot image of acomparison character; comparing the dot image of the comparisoncharacter with said converted dot image; and repeating the obtaining andcomparing steps until the dot image of the comparison character matchessaid converted dot image.
 5. A method for operating a computingapparatus that controls a graphics display to write a text characteronto a display screen, the computing appartus including a processorreferencing a store, and a display refresh buffer, characterized in thatthe method comprises the steps of:establishing addressability to thelocation in said display refresh buffer to receive a selected displaytext character; establishing addressability to the location in saidstore containing a dot image of said selected display text character;fetching one portion of said dot image from said store; expanding saidportion of said dot image according to a selected pixel format toprovide an expanded dot image portion; modifying said expanded dot imageportion to encode a desired color; and storing the expanded dot imageportion as modified in said display refresh buffer; and repeating saidfetching, expanding, modifying and storing steps for each portion ofsaid dot image to load into said display refresh buffer the selecteddisplay text character.
 6. The method of claim .[.7,.]. .Iadd.5,.Iaddend.characterized by the steps of:refreshing a raster scan displaywith alternate raster scan lines refreshed from offset locations of saiddisplay refresh buffer; and storing alternating dot image portions inoffset locations of said display refresh buffer as part of said storingstep.
 7. The method of claim .[.7,.]. .Iadd.5, .Iaddend.characterized inthat said storing step is performed by exclusive 'ORing each dot imageportion with a corresponding portion of said modified expanded dot imagepreviously stored in said display refresh buffer.
 8. The method of claim5, characterized in that said expanding step and said modifying step arefor the purpose of writing a text character in color and said expandingstep and modifying step are eliminated when writing the text characterin black and white.
 9. A method for operating a computing apparatus thatcontrols a graphics display to read a text character previously writtenonto said graphics display, the computing apparatus including aprocessor referencing a store, and a display refresh buffer, comprisingthe steps of:retrieving from said display refresh buffer a dot image ofthe character to be read; storing the dot image of the character to beread in a save area in said store; sequentially retrieving from saidstore respective dot images of possible display text characters andcomparing each respective dot image with the dot image in the save area;and repeating the retrieving and comparing steps until a respective dotimage matches the dot image in said save area, thereby concludingreading of the text characters. .Iadd.10. A raster scan video displaycontrol apparatus of the type including a graphic video display refreshbuffer operable in an all points addressable mode for refreshing saiddisplay with graphics data, a processor for writing graphics data intosaid display refresh buffer, and a character storage for storing thecharacter dot patterns of a display character font, comprising means forselecting a character to be displayed, and means for loading from saidstorage into said graphic video display refresh buffer a character dotpattern corresponding to the character to be displayed and for reading apreviously displayed character by comparing a character dot patternpreviously loaded into said graphic video display buffer with successivecharacter dot patterns selected from said character storage. .Iaddend..Iadd.11. A raster scan video display control apparatus of the typeincluding a graphic video display refresh buffer for refreshing saiddisplay with graphics data, a processor for writing graphics data intosaid display refresh buffer, and a character storage for storing thecharacter dot patterns of a display character font, comprising means forselecting a character to be displayed, means for reading out saidcharacter from said character storage in a first format, means forexpanding the selected character dot pattern into a predetermined pixelformat and then color encoding the expanded dot pattern to establish aresultant expanded/encoded dot pattern, and loading saidexpanded/encoded dot pattern into said graphic video display refreshbuffer. .Iaddend. .Iadd.12. In a display apparatus for writing a textcharacter onto a video display and including a means for retrieving thegraphic dot image of the character to be written from a characterstorage, the improvement comprising means for expanding a retrievedgraphic dot image into a selected pixel and color format, and means forstoring the expanded dot image in a display refresh buffer. .Iaddend..Iadd.13. Video display control apparatus of the type including a videodisplay buffer for holding information patterns directly specifying thetracing of patterns on a display screen, a processor for writinginformation patterns into said buffer, and font storage means forstoring a font of displayable information patterns, characterizedby:means for selecting code representations of patterns to be displayed;means responsive to said selected representations for extracting firstinformation patterns corresponding to said patterns extracted from saidfont storage means; means for converting said extracted first patternsinto corresponding second information patterns for producing the samedisplay patterns as said first patterns but with a different imagecharacteristic; and means for entering said second information patternsinto said display buffer. .Iaddend. .Iadd.14. Video display controlapparatus of the type including a video display buffer for holdinginformation patterns directly specifying the tracing of image patternson a display screen, a processor for writing information patterns, intosaid buffer, and font storage means for storing a font of displayableinformation patterns, characterized by: means for selecting coderepresentations of image patterns to be displayed; means responsive tosaid selected representations for extracting corresponding informationpatterns from said font storing means; means responsive to saidextracting means for storing information patterns corresponding to saidextracted patterns in said display buffer; means for reading informationpattern patterns from said display buffer; and means coupled to saidreading means and said font storage means for converting informationpatterns read from said buffer into corresponding code representations..Iaddend. .Iadd.15. Video display control apparatus in accordance withclaim 14 wherein said converting means comprises:means for comparingeach information pattern read from said display buffer with patternsstored in said font storage means; and means responsive to a matchbetween patterns compared by said comparing means for developing a coderepresentation corresponding to the matched pattern. .Iaddend. .Iadd.16.Video display control apparatus in accordance with claim 14 wherein saidmeans for storing corresponding patterns in said display buffercomprises: means for converting each pattern extracted from said fontstorage into a corresponding pattern having a different display imagecharacteristic than the extracted pattern; and means for writing suchcorresponding patterns into said display buffer. .Iaddend. .Iadd.17. Amethod for creating image displays of information patternscomprising:forming code representations of information patterns to bedisplayed; converting said code representations into corresponding firstinformation patterns corresponding to images to be displayed; convertingsaid first information patterns into second information patterns fordirectly controlling the tracing of associated image patterns on animage display; said second information patterns having associated imagecharacteristics different from those of the respective first informationpatterns; and storing said second information patterns in a displaybuffer capable of directly controlling the formation of images on animage display. .Iaddend. .Iadd.18. A method for creating image displaysof information patterns comprising: forming code representations ofinformation patterns to be displayed; converting said coderepresentations into corresponding information patterns to be displayed;storing said information patterns in a display buffer capable ofdirectly controlling the formation of images on an image display;reading information patterns from said display buffer; and convertingsaid information patterns read from said display buffer intocorresponding code representations. .Iaddend. .Iadd.19. The displayformation method of claim 18 wherein:said step of converting said coderepresentations into corresponding information patterns comprises:converting each code representation into a first associated informationpattern having a first associated image formation characteristic; andconverting each first associated information pattern into a differentsecond information pattern having an associated second image formationcharacteristic different from the respective first characteristic..Iaddend. .Iadd.20. The display formation method of claim 19 whereinsaid step of converting said information patterns into coderepresentations comprises: converting each information pattern into acorresponding standardized information pattern having a different imageformation characteristic; and converting each said corresponding patterninto a corresponding standardized code representation. .Iaddend.